package com.qfjy.mapper;

import com.qfjy.entity.po.MeetingPub;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface MeetingPubMapper {
    int deleteByPrimaryKey(String id);

    int insert(MeetingPub record);

    int insertSelective(MeetingPub record);

    MeetingPub selectByPrimaryKey(String id);

    int updateByPrimaryKeySelective(MeetingPub record);

    int updateByPrimaryKey(MeetingPub record);


    /**
     * 根据会议召开时间  获取最大的会议编号
     */
    @Select(" select max(pcode) from meeting_pub  where LEFT(p_time,10) =#{time}  ")
    public String selectMeetingPubMaxPcodeByPtime(String time);

    /**
     * 我发布的会议列表
     */
    public List<MeetingPub> selectMeetingPubByUid(int uid);

    /**
     * 可抢单列表SQL
     1、分析查询的主体
     会议主题
     课题类别 会议编号
     ---------
     会议发单表（会议主题、会议编号）、 课题类别表（课题类别名称）
     2、分析业务逻辑（表与表的关联关系）
     条件1：发单列表中（和抢单人uid）区域是同一个区域或者是全国。
     条件2：抢单人uid 抢过的单子不能再出现
     条件3：如果该单被别人抢了，匹配成功单子也不能出现。
     条件4：根据课题类别 进行筛选
     3、编写SQL语句进行查询（可抢单列表）

     select pub.*,type.`name` from meeting_pub pub
     LEFT JOIN meeting_type type  ON pub.tid=type.id
     LEFT JOIN user u ON (pub.zone=u.zone or pub.zone='全国')
     where u.id=328
     and pub.id not in ( select pid from meeting_grab where uid=328 or grab_status=1)

     and tid=3;
     */
    public List<MeetingPub> grabListByUid(int uid,int tid);

    /**
     * 会议抢单-》可抢单者列表->我的可抢单列表
     * 抢单人抢了哪些单子列表
     */
    public List<MeetingPub> grabListMyByUid(int uid);

}